<?php

namespace App\Models\V1;

use Illuminate\Database\Eloquent\Factories\HasFactory;

class Community extends BaseModel
{
    use HasFactory;

    protected $connection;
    protected $table = 'wy_community';
    protected $fillable = [
        'name',
        'thumb',
        'construct_time',
        'occy_time',
        'acreage',
        'household_num',
        'shop_num',
        'garage_num',
        'introductory',
        'province_id',
        'province_name',
        'city_id',
        'city_name',
        'district_id',
        'district_name',
        'address',
        'created_at',
        'updated_at',
        'state',
        'partition',
        'building',
        'floor',
        'hnum',
        'agent_id',
        'agent_name',
        'element',

    ];
    public function __construct(array $attributes = [])
    {
        parent::__construct($attributes);
        $this->connection = config('database.connections.wuye.database');
    }

    /**
     * 状态
     * @param $key
     * @return string
     */
    public function getStateAttribute($key)
    {
        return (string)$key;
    }


    // 修改器：在保存数据前，将数组字段转换为JSON字符串
    public function setPartitionAttribute($value)
    {
        $this->attributes['partition'] = json_encode($value);
    }

    // 访问器：在读取数据时，将JSON字符串转换为数组
    public function getPartitionAttribute($value)
    {
        return json_decode($value, true); // 注意第二个参数设置为 true，表示返回数组而不是对象
    }


    // 修改器：在保存数据前，将数组字段转换为JSON字符串
    public function setBuildingAttribute($value)
    {
        $this->attributes['building'] = json_encode($value);
    }

    // 访问器：在读取数据时，将JSON字符串转换为数组
    public function getBuildingAttribute($value)
    {
        return json_decode($value, true); // 注意第二个参数设置为 true，表示返回数组而不是对象
    }


    // 修改器：在保存数据前，将数组字段转换为JSON字符串
    public function setElementAttribute($value)
    {
        $this->attributes['element'] = json_encode($value);
    }


    // 访问器：在读取数据时，将JSON字符串转换为数组
    public function getElementAttribute($value)
    {
        return json_decode($value, true); // 注意第二个参数设置为 true，表示返回数组而不是对象
    }



    // 修改器：在保存数据前，将数组字段转换为JSON字符串
    public function setFloorAttribute($value)
    {
        $this->attributes['floor'] = json_encode($value);
    }

    // 访问器：在读取数据时，将JSON字符串转换为数组
    public function getFloorAttribute($value)
    {
        return json_decode($value, true); // 注意第二个参数设置为 true，表示返回数组而不是对象
    }


    // 修改器：在保存数据前，将数组字段转换为JSON字符串
    public function setHnumAttribute($value)
    {
        $this->attributes['hnum'] = json_encode($value);
    }

    // 访问器：在读取数据时，将JSON字符串转换为数组
    public function getHnumAttribute($value)
    {
        return json_decode($value, true); // 注意第二个参数设置为 true，表示返回数组而不是对象
    }


}
